package com.zbkj.crmeb.merchant.admin.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.common.PageParamRequest;
import com.github.pagehelper.PageInfo;
import com.zbkj.crmeb.export.vo.SupplierProductExcelVo;
import com.zbkj.crmeb.export.vo.UploadSupplierProductExcelVo;
import com.zbkj.crmeb.export.vo.UploadSupplierProductExcel2Vo;
import com.zbkj.crmeb.store.model.StoreProduct;
import com.zbkj.crmeb.store.model.StoreProductUpload;
import com.zbkj.crmeb.store.request.BatchEnabledRequest;
import com.zbkj.crmeb.store.request.SupplierProductRequest;
import com.zbkj.crmeb.store.request.SupplierStoreProductSearchRequest;
import com.zbkj.crmeb.store.response.StoreProductNormResponse;
import com.zbkj.crmeb.store.response.StoreProductResponse;
import com.zbkj.crmeb.store.response.StoreProductTabsHeader;

import java.util.List;

public interface SupplierStoreProductService extends IService<StoreProduct> {

    PageInfo<StoreProductResponse> supplierProductList(SupplierStoreProductSearchRequest request, Integer supplierId);

    StoreProductUpload importProductList(List<UploadSupplierProductExcelVo> list,Integer merId);

    StoreProductUpload importProductList2(List<UploadSupplierProductExcel2Vo> list,Integer merId);

    PageInfo<StoreProductResponse> supplierDraftProductList(SupplierStoreProductSearchRequest request, Integer supplierId);

    StoreProductNormResponse supplierProductInfo(Integer id, Integer supplierId);

    StoreProductResponse supplierDraftProductInfo(Integer id, Integer supplierId);

    Boolean updateSupplierProduct(SupplierProductRequest supplierProductRequest, Integer supplierId);

    Boolean batchUpdateSupplierProduct(SupplierProductRequest supplierProductRequest, Integer supplierId);

    Boolean updateSupplierDraftProduct(SupplierProductRequest supplierProductRequest, Integer supplierId);

    boolean addSupplierProduct(SupplierProductRequest supplierProductRequest, Integer supplierId);

    boolean deleteSupplierDraftProduct(List<Integer> ids, Integer supplierId);

    boolean batchShow(BatchEnabledRequest request, Integer merId);

    PageInfo<StoreProductUpload> uploadList(PageParamRequest request, Integer merId);

    List<SupplierProductExcelVo> parseExportList(List<StoreProductResponse> productList);

    List<StoreProductTabsHeader> getTabsHeader(int merId);

    /**
     * 功能描述: 批量下架
     * @Param: [ids]
     * @Return: java.lang.Boolean
     * @Author: wangzh
     * @Date: 2023/4/6 16:35
     */
    Boolean batchUndercarriage(List<Integer> ids, Integer merId);

}
